MongoDB তে কুয়েরি অপারেটরগুলি ব্যবহার করা হয় ডেটা অনুসন্ধান এবং প্রক্রিয়া করার জন্য। এই অপারেটরগুলি বিভিন্ন ধরনের শর্তের ভিত্তিতে ডেটা নির্বাচন করতে সহায়তা করে। MongoDB তে তিন ধরনের প্রধান কুয়েরি অপারেটর রয়েছে: তুলনা অপারেটর, লজিক্যাল অপারেটর, এবং এলিমেন্ট অপারেটর।
1. তুলনা অপারেটর (Comparison Operators)
তুলনা অপারেটরগুলি ডেটার মানের ভিত্তিতে ডেটা অনুসন্ধান করতে ব্যবহৃত হয়।
$eq(সমান): ডেটার মানের সাথে সমান থাকা ডকুমেন্টগুলি মেলে।db.collection.find({ age: { $eq: 30 } })$ne(অসমান): ডেটার মানের সাথে অসমান থাকা ডকুমেন্টগুলি মেলে।db.collection.find({ age: { $ne: 30 } })$gt(বড়): ডেটার মান যেগুলোর থেকে বড়, সেগুলিকে মেলে।db.collection.find({ age: { $gt: 30 } })$gte(বড় অথবা সমান): ডেটার মান যেগুলোর থেকে বড় অথবা সমান, সেগুলিকে মেলে।db.collection.find({ age: { $gte: 30 } })$lt(ছোট): ডেটার মান যেগুলোর থেকে ছোট, সেগুলিকে মেলে।db.collection.find({ age: { $lt: 30 } })$lte(ছোট অথবা সমান): ডেটার মান যেগুলোর থেকে ছোট অথবা সমান, সেগুলিকে মেলে।db.collection.find({ age: { $lte: 30 } })$in(ভিতরে): একটি নির্দিষ্ট মান যেগুলোর মধ্যে থাকে, সেগুলি মেলে।db.collection.find({ age: { $in: [30, 40, 50] } })$nin(ভিতরে নয়): একটি নির্দিষ্ট মান যেগুলোর মধ্যে নেই, সেগুলি মেলে।db.collection.find({ age: { $nin: [30, 40, 50] } })
2. লজিক্যাল অপারেটর (Logical Operators)
লজিক্যাল অপারেটরগুলি একাধিক শর্তের ভিত্তিতে ডেটা নির্বাচন করতে ব্যবহৃত হয়।
$and(এবং): একাধিক শর্তের মধ্যে সব শর্ত মেনে চলা ডকুমেন্টগুলি মেলে।db.collection.find({ $and: [{ age: { $gte: 30 } }, { age: { $lt: 40 } }] })$or(অথবা): একাধিক শর্তের মধ্যে যেকোনো একটি শর্ত পূর্ণ হলে ডকুমেন্ট মেলে।db.collection.find({ $or: [{ age: { $lte: 30 } }, { age: { $gte: 40 } }] })$not(নট): একটি শর্তের বিপরীত ডকুমেন্ট মেলে।db.collection.find({ age: { $not: { $gte: 30 } } })$nor(অথবা নয়): একাধিক শর্তের মধ্যে সব শর্ত পূর্ণ না হলে ডকুমেন্ট মেলে।db.collection.find({ $nor: [{ age: { $gte: 30 } }, { age: { $lte: 20 } }] })
3. এলিমেন্ট অপারেটর (Element Operators)
এলিমেন্ট অপারেটরগুলি ডেটার উপস্থিতি বা ডেটার টাইপ পরীক্ষা করতে ব্যবহৃত হয়।
$exists(অস্তিত্ব): একটি ফিল্ড ডকুমেন্টে রয়েছে কিনা তা চেক করতে ব্যবহৃত হয়। এটিtrueবাfalseহতে পারে।true: ফিল্ডটি বিদ্যমান ডকুমেন্টগুলি মেলে।false: ফিল্ডটি অনুপস্থিত ডকুমেন্টগুলি মেলে।
db.collection.find({ age: { $exists: true } }) db.collection.find({ age: { $exists: false } })$type(টাইপ): একটি ফিল্ড নির্দিষ্ট BSON টাইপের কিনা তা চেক করতে ব্যবহৃত হয়।db.collection.find({ age: { $type: "int" } }) db.collection.find({ age: { $type: 16 } }) // 16 হল BSON টাইপ `int`
উদাহরণ কুয়েরি
তুলনা অপারেটর ব্যবহার করে: বয়স ৩০ এর কম বা ৬০ এর বেশি ব্যবহারকারীদের খুঁজুন।
db.users.find({ age: { $lt: 30, $gt: 60 } })লজিক্যাল অপারেটর ব্যবহার করে: বয়স ৩০ এর বেশি বা ২০ এর কম ব্যবহারকারীদের খুঁজুন।
db.users.find({ $or: [{ age: { $gt: 30 } }, { age: { $lt: 20 } }] })এলিমেন্ট অপারেটর ব্যবহার করে: যেখানে
ageফিল্ড উপস্থিত।db.users.find({ age: { $exists: true } })$inব্যবহার করে: বয়স ২৫, ৩০ অথবা ৩৫ এর মধ্যে ব্যবহারকারীদের খুঁজুন।db.users.find({ age: { $in: [25, 30, 35] } })
সারাংশ
MongoDB তে তুলনা অপারেটর, লজিক্যাল অপারেটর, এবং এলিমেন্ট অপারেটর ডেটাবেসে ডেটা অনুসন্ধানে অত্যন্ত শক্তিশালী টুল হিসেবে কাজ করে। তুলনা অপারেটর ব্যবহার করে ডেটার মানের ভিত্তিতে কুয়েরি করা যায়, লজিক্যাল অপারেটর ব্যবহার করে একাধিক শর্তকে যুক্ত বা বিপরীতভাবে কাজ করা যায়, এবং এলিমেন্ট অপারেটর ব্যবহার করে ডেটার উপস্থিতি বা টাইপ চেক করা যায়। এই অপারেটরগুলি MongoDB ডেটাবেসে খুবই নমনীয় এবং জটিল কুয়েরি তৈরি করতে সহায়তা করে।